import router from './router'
import storage from './model/Storage';
// import CityView from './view/CityView.vue'

const whiteList = [ '/dashboard','/test','/404','/code','/receive']
const routeConfigArray = [

       {
            path: '/city',
            component: './view/CityView.vue'
        },
  
];

router.beforeEach((to, from, next) => {

  if (storage.get("token")) {
    console.log("token存在,可以进入页面",to.path);
    /* has token*/
    if (to.path === '/dashboard') {
      next() //回到首页

    } else if (whiteList.indexOf(to.path) !== -1) {
      console.log("token存在,也在白名单中");
      next()
    } else {
      console.log("token存在,但访问的路径不在白名单中");
      if(storage.get("test")){
        console.log("test没有值"+storage.get("test"));
        this.$store.commit("setTest", 'hhaha');
        // 根据roles权限生成可访问的路由表
      router.addRoutes(routeConfigArray) // 动态添加可访问路由表
      next({ ...to, replace: true }) // hack方法 确保addRoutes已完成
              // next('/test' )
      }else{
        console.log("动态路由加载完成,直接进入")
        next()
      }
    }
  } else {
    // 没有token
    if (whiteList.indexOf(to.path) !== -1) {
      console.log("token不存在,但在白名单中");
      // 在免登录白名单，直接进入
      next()
    } else {
      console.log("token不存在,也不在白名单中");
      // next(`/dashboard?redirect=${to.fullPath}`) // 否则全部重定向到登录页
      next('/404')  

    }
  }
})
